package gui;

/*
 * Esse arquivo é parte do Software new Recicle
 * 
 * Copyright (C) 2011-$AnoCorrente$ Eduardo Moreira Barbosa
 * Copyright (C) 2011-$AnoCorrente$ João dos Santos Gonçalves
 * Copyright (C) 2011-$AnoCorrente$ Lucas Ximenes da Fonseca
 * 
 * new Recicle é um Software Livre: Você pode redistribuí-lo e/ou modificá-lo
 * de acordo com os termos da Licença Pública Geral GNU (GNU General Public License)
 * conforme publicada pela Free Software Foundation (FSF). Essa permissão é atribuída
 * na versão 3 da Licença, ou (na sua opinião) qualquer versão.
 * 
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa,
 * se não, escreva para a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor,
 * Boston, MA  02110-1301  USA
 * 
 * Se você tiver alguma dúvida e/ou quiser dar suporte ao desenvolvimento, favor entrar em
 * contato nos e-mails <barbosa.edrd@gmail.com>, <john.jsg@hotmail.com>, <lxf.lucas@gmail.com>.
 */

import bd.*;
import java.awt.Toolkit;
import rh.Voluntario;
import rh.Associado;

public final class PreNewRecicle extends javax.swing.JFrame {
    
    protected static PreNewRecicle preNewRecicle;
    private String[] pesquisa;

    public PreNewRecicle() {
        initComponents();

        mudaIcone();
        
        // Banco de Dados
        bancoTabelas();
    }
    
    private void mudaIcone(){
        try {
            //Setando o Icone do Frame Principal
            this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/imagens/ervilha/Logo.png")));
        } catch (Exception e){
        }
    }
    
    /**
     * Cria as tabelas vazias, se o banco de dados estiver com falta das mesmas.
     */
    private void bancoTabelas() {
        BancoDeDados bancoDeDados = new BancoDeDados();
        
        String tabProducao = "Create Table IF NOT EXISTS Producao (Indice INT(11) NOT NULL AUTO_INCREMENT, " +
                                                                "Data VARCHAR(25), " +
                                                                "Associado VARCHAR(100), " +
                                                                "Tipo VARCHAR(20), " +
                                                                "Peso FLOAT(5), " +
                                                                "FormaArmazenamento VARCHAR(8), "+
                                                                "PRIMARY KEY(Indice)); ";

        
        String tabEmpresa = "Create Table IF NOT EXISTS Empresa (DataContato VARCHAR(25), " +
                                                                "Nome VARCHAR(40), " +
                                                                "Endereco VARCHAR(120), " +
                                                                "Bairro VARCHAR(15), " +
                                                                "Cep VARCHAR(20), " +
                                                                "Cidade VARCHAR(15), " +
                                                                "Estado VARCHAR(15), " +
                                                                "Email VARCHAR(25), " +
                                                                "Telefone VARCHAR(25), " +
                                                                "NumeroEmpregados VARCHAR(10), " +
                                                                "TempoAtuacao VARCHAR(20), " +
                                                                "Cnpj VARCHAR(20), " +
                                                                "PRIMARY KEY(Nome)); ";
        
        String tabProduto = "Create Table IF NOT EXISTS Produto (Tipo VARCHAR(40), " +
                                                    "PRIMARY KEY(Tipo)); ";
        
        String tabVoluntario = "Create Table IF NOT EXISTS Voluntario (Nome VARCHAR(60), " +
                                                        "Senha VARCHAR(16), " +
                                                        "Cpf VARCHAR(14), " +
                                                        "Sexo VARCHAR(1), " +
                                                        "Telefone VARCHAR(15), " +
                                                        "Celular VARCHAR(15), " +
                                                        "Email VARCHAR(50)," +
                                                        "Imagem VARCHAR(500), " +
                                                        "PRIMARY KEY(Nome));";
        
        String tabAssociado = "Create Table IF NOT EXISTS Associado (Nome VARCHAR(60), " +
                                                        "Senha VARCHAR(16), " +
                                                        "Cpf VARCHAR(20), " +
                                                        "Sexo VARCHAR(1), " +
                                                        "Imagem VARCHAR(500), " +
                                                        "PRIMARY KEY(Nome));";
        
        
        bancoDeDados.conectarLocal();
        bancoDeDados.criarBanco();
        bancoDeDados.conectarBanco();
       
        bancoDeDados.criarTabela(tabProducao);
        bancoDeDados.criarTabela(tabEmpresa);
        bancoDeDados.criarTabela(tabAssociado);
        bancoDeDados.criarTabela(tabVoluntario);
        bancoDeDados.criarTabela(tabProduto);

        try {
            BancoVoluntario bv = new BancoVoluntario();
            bv.pesquisarId();
            String[] retornoId = bv.retornarId();
            
            if ( (retornoId[0].equals("")) ){
                primeiroVoluntárioPadrao();
                primeirosAssociadosPadroes();
                System.out.println("Cadastrou o voluntário padrão e os usuários padrões!");
                
            }
        } catch (Exception e) {
            System.out.println("PreErvilha, linha 94" + e);
        }
    }

    /**
     * Define o primeiro voluntário sendo este padrão, criado SOMENTE se a tabela voluntário
     * estiver vazia. E poderá cadastrar os demais, além de pode ser alterado
     * para se tornar outro voluntário.
     */
    private void primeiroVoluntárioPadrao() {
        // Teste para criar usuario padrão
        BancoVoluntario bv = new BancoVoluntario();

        Voluntario.getVoluntario().setNome("Fudencio");
        Voluntario.getVoluntario().setSenha("fudencio");
        Voluntario.getVoluntario().setCpf("000.000.000-00");
        Voluntario.getVoluntario().setSexo("m");
        Voluntario.getVoluntario().setImagem("/imagens/fotos/fudencio.jpg");
        Voluntario.getVoluntario().setCelular("(66)6666-6666");
        Voluntario.getVoluntario().setTelefone("(66)6666-6666");
        Voluntario.getVoluntario().setEmail("fudencio@fudencio.com");

        bv.cadastrar();
        try {
            bv.pesquisarId();
            pesquisa = bv.retornarId();
            
            bv.pesquisarBanco(pesquisa[0]);
            pesquisa = bv.retornarBanco().split("#");
            
            Panel_Voluntarios.botao1.setName( pesquisa[0] );

        } catch (Exception e) {
        }
    }
    
    private void primeirosAssociadosPadroes() {
        BancoAssociado ba = new BancoAssociado();

        /*
         * Conrado
         */
        Associado.getAssociado().setNome("Conrado");
        Associado.getAssociado().setSenha("conrado");
        Associado.getAssociado().setCpf("000.000.000-00");
        Associado.getAssociado().setSexo("m");
        Associado.getAssociado().setImagem("/imagens/fotos/conrado.jpg");
        ba.cadastrar();
        
        /*
         * Funeria
         */
        Associado.getAssociado().setNome("Funeria");
        Associado.getAssociado().setSenha("funeria");
        Associado.getAssociado().setCpf("000.000.000-00");
        Associado.getAssociado().setSexo("f");
        Associado.getAssociado().setImagem("/imagens/fotos/funeria.jpg");
        ba.cadastrar();
        
        /*
         * Ze Maria
         */
        Associado.getAssociado().setNome("Ze Maria");
        Associado.getAssociado().setSenha("zemaria");
        Associado.getAssociado().setCpf("000.000.000-00");
        Associado.getAssociado().setSexo("m");
        Associado.getAssociado().setImagem("/imagens/fotos/ze_maria.jpg");
        ba.cadastrar();
        
    }
    
    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setResizable(false);
        setUndecorated(true);

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/ervilha/preloader.gif"))); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 457, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    public static void main(String args[]) {
        
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(PreNewRecicle.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(PreNewRecicle.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(PreNewRecicle.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(PreNewRecicle.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        java.awt.EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                preNewRecicle = new PreNewRecicle();
                preNewRecicle.setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    // End of variables declaration//GEN-END:variables
}
